<?php

/* Настройки */

$testing = false; // Режим тестирования (отображение смс только в Истории sms.ru)
$email_to = "text@example.com"; // Адрес получателя форм
$email_subject = "Сообщение с сайта"; // Тема письма
$from_email = "myemail@example.com"; // Отправитель
$from_email_password = "123abc"; // Пароль от почты отправителя
$output_filename = "form_data.txt"; // Имя файла CSV
$secret = "6Lep*************************ci8DE****"; //Секретный ключ со страницы https://www.google.com/recaptcha/admin/

require_once 'vendor/autoload.php';

header('Content-Type: application/json');

$name = htmlspecialchars(trim($_POST['name']));
$email = htmlspecialchars(trim($_POST['email']));
$message = htmlspecialchars(trim($_POST['message']));

if (empty($message) || empty($email)) {
    header('HTTP/1.0 403 Forbidden');
    echo json_encode(['error' => true, 'code' => 'ERROR', 'message' => 'Форма имеет пустые поля']);
    exit;
}

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    header('HTTP/1.0 403 Forbidden');
    echo json_encode(['error' => true, 'code' => 'ERROR', 'message' => 'Email введен с ошибкой']);
    exit;
}

try {
    //print_r($_REQUEST);

    $recaptcha = new \ReCaptcha\ReCaptcha($secret);
    $resp = $recaptcha->verify($_REQUEST['token']);
    if (!$resp->isSuccess()) {
        header('HTTP/1.0 403 Forbidden');
        echo json_encode(['error' => true, 'code' => 'ERROR', 'message' => 'Защита от роботов не пройдена']);
        exit;
    }

    $data = "Имя: $name\nEmail: $email\nСообщение: $message\nДата: " . date("d.m.Y H:i:s") . "\n=========================================\n\n";
    file_put_contents($output_filename, $data, FILE_APPEND);

    $mail = new PHPMailer\PHPMailer\PHPMailer(true);
    $mail->SMTPDebug = 2;
    $mail->CharSet = 'UTF-8';

    $mail->Host = 'localhost'; // Замените на ваш SMTP-сервер
    $mail->SMTPAuth = true;
    $mail->Username = $from_email; // Ваш SMTP логин
    $mail->Password = $from_email_password; // Ваш SMTP пароль
    $mail->SMTPSecure = 'tls'; // Enable TLS encryption
    $mail->Port = 587;

    $mail->setFrom($from_email);
    $mail->addAddress($email_to);
    $mail->Subject = $email_subject;
    $mail->Body    = nl2br($data);
    $mail->AltBody = $data;

    $sent = $mail->send();

    echo json_encode(['code' => 'OK', 'message' => 'Сообщение отправлено']);
} catch (Exception $e) {
    error_log("Message could not be sent. Mailer Error: {$mail->ErrorInfo}");
    header('HTTP/1.0 500 Internal Server Error');
    echo json_encode(['error' => true, 'code' => 'ERROR', 'message' => 'Произошла ошибка при отправке сообщения']);
    exit;
}
